package com.carleasoft.mps.cms.business.repairs.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.carleasoft.mps.cms.business.repairs.bean.entity.EquipmentMessage;
import com.carleasoft.mps.cms.business.repairs.bean.entity.RepairsGroup;
import com.carleasoft.mps.cms.business.repairs.bean.po.*;
import com.carleasoft.mps.cms.business.repairs.bean.vo.EquipmentMessageDetailVo;
import com.carleasoft.mps.cms.business.repairs.bean.vo.EquipmentStatisticsVo;
import com.carleasoft.mps.cms.business.repairs.bean.vo.MaintainRateVo;
import com.carleasoft.mps.cms.business.repairs.bean.vo.QueryIsDealPersonVo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;

/**
 * <p>
 * 网上报修 服务类
 * </p>
 *
 * @author fan
 * @since 2023-06-02
 */
public interface EquipmentMessageService extends IService<EquipmentMessage> {
    /**
     * 网上报修添加接口
     */
    boolean equipmentAdd( EquipmentMessageAddOrEditPo equipmentMessageAddOrEditPo);
    /**
     * 网上报修分页接口
     */
    Page<EquipmentMessage> equipmentPage( EquipmentMessagePagePo equipmentMessagePagePo);
    /**
     * 网上报修分页接口
     */
    Page<EquipmentMessage> myEquipmentPage( EquipmentMessagePagePo equipmentMessagePagePo);
    /**
     * 网上报修详情接口
     */
    EquipmentMessageDetailVo equipmentDetail(EquipmentMessage equipmentMessage);
    /**
     * 网上报修处理接口
     */
    boolean equipmentDeal( EquipmentMessageDealPo equipmentMessageDealPo);
    /**
     * 网上报修维修反馈接口
     */
    boolean equipmentFeedback(EquipmentFeedbackPo equipmentFeedbackPo);
    /**
     * 网上报修派单人员查询
     */
    List<RepairsGroup> sendPersonList(SendPersonListPo sendPersonListPo);
    /**
     * 重新派工接口
     */
    boolean anew(AnewPo anewPo);
    /**
     * 查询当前登录人是否是综合处理人
     */
    QueryIsDealPersonVo queryIsDealPerson();
    /**
     * 导出报修记录
     */
    boolean export(EquipmentMessagePagePo equipmentMessagePagePo, HttpServletResponse response);
    /**
     * 办公统计-网上报修
     */
    EquipmentStatisticsVo statistics();
    List<HashMap<String, Object>> statisticsTheYear();
    /**
     * 办公统计-网上报修-维修率统计
     */
    MaintainRateVo MaintainRate();

    boolean equipmentExcel(MultipartFile file);
}
